/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-08-15
 * Time: 09:28
 */
class Solution {
    //69. x 的平方根
    /*给你一个非负整数 x ，计算并返回 x 的 算术平方根 。
    由于返回类型是整数，结果只保留 整数部分 ，小数部分将被 舍去 。
    注意：不允许使用任何内置指数函数和算符，例如 pow(x, 0.5) 或者 x ** 0.5 。
    示例 1：
    输入：x = 4
    输出：2
    示例 2：
    输入：x = 8
    输出：2
    解释：8 的算术平方根是 2.82842..., 由于返回类型是整数，小数部分将被舍去。
    提示：
            0 <= x <= 231 - 1*/

    //本质考的是二分查找
    public int mySqrt(int x) {
        if(x==0)return 0;
        int left=1;
        int right=x;
        //平方根一定在1~x里
        while(left<=right){
            int mid=(left+right)/2;
            if(mid==x/mid)return mid;
            else if(mid<x/mid)left=mid+1;
            else if(mid>x/mid)right=mid-1;
        }
        //因为只要整数部分，所以要取小的
        return right;
    }
}